subroutine memfree
  use global
  implicit none
  deallocate(egrid)
  deallocate(rgrid)
  deallocate(rspec)
  deallocate(rspec1)
  deallocate(rspec2)
  deallocate(rspec3)
  deallocate(rspec4)
  deallocate(res)
  deallocate(e_split)
  if (xsec%ndata.gt.0) deallocate(xsec%e)
  if (xsec%ndata.gt.0) deallocate(xsec%x)
  if (nstop%ndata.gt.0) deallocate(nstop%e)
  if (nstop%ndata.gt.0) deallocate(nstop%x)
end subroutine memfree
